import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.List;
import java.util.ArrayList;
/**
 * Write a description of class Ironman here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class OjoHalcon extends Enemigo
{
    private int direccionx;
    private int direcciony;
    private String dibujo[];
    private int dibujo_act;
    private boolean dirizq;
    private boolean dirder;
    private int aux;


    
      public  OjoHalcon()
    {
      dibujo=new String[40];
      dibujo[0]="ojoc1.gif";//empieza caminar de iron man
      dibujo[1]="ojoc1.gif";
      dibujo[2]="ojoc1.gif";
      dibujo[3]="ojoc2.gif";
      dibujo[4]="ojoc2.gif";
      dibujo[5]="ojoc2.gif";
      dibujo[6]="ojoc3.gif";
      dibujo[7]="ojoc3.gif";
      dibujo[8]="ojoc3.gif";
      dibujo[9]="ojoc4.gif";
      dibujo[10]="ojoc4.gif";
      dibujo[11]="ojoc4.gif";
      dibujo[12]="ojoc5.gif";//empieza disparo de iron man
      dibujo[13]="ojoc5.gif";
      dibujo[14]="ojoc5.gif";
      dibujo[15]="ojoc5.gif";
      dibujo[16]="ojod1.gif";
      dibujo[17]="ojod1.gif";
      dibujo[18]="ojod1.gif";
      dibujo[19]="ojod1.gif";
      dibujo[20]="ojod1.gif";
      dibujo[21]="ojod2.gif";
      dibujo[22]="ojod2.gif";
      dibujo[23]="ojod2.gif";
      dibujo[24]="ojod2.gif";
      dibujo[25]="ojod1.gif";
      dibujo[26]="ojod1.gif";
      dibujo[27]="ojod1.gif";
      dibujo[28]="ojod2.gif";
      dibujo[29]="ojod2.gif";
      dibujo[30]="ojod2.gif";
      dibujo[31]="ojod2.gif";// termina disparo iron man
      dibujo[32]="ojoc1.gif";
      dibujo[33]="ojoc1.gif";
      dibujo[34]="ojoc1.gif";
      dibujo[35]="ojoc1.gif";
      dibujo[36]="ojoc2.gif";
      dibujo[37]="ojoc2.gif";
      dibujo[38]="ojoc2.gif";
      dibujo[39]="ojoc2.gif";//termina brinco iron man
      
      this.dirder=true;
      this.dirizq=false;
      this.dibujo_act=0;
      this.aux=0;
       
    }
      
    public void act() 
    {
       GreenfootImage imagen;
       
       int aleatorio=Greenfoot.getRandomNumber(600);//crea numero aleatorio
       
       this.setImage(this.dibujo[this.dibujo_act]);
        if(direccionx== 1)//checa la direccion y pone la miagen
        {
            imagen=this.getImage();
            imagen.mirrorHorizontally();
            this.setImage(imagen); 
        }
       imagen=this.getImage();
       imagen.scale(100,100);
      
      
       Gravedad();
      //List Cercaheroe = this.getNeighbours(3,false,Spiderman.class);
       
       if(aleatorio>74 && aleatorio< 104 && this.aux ==0)//disparo iron man aleatorio
       {
           this.dibujo_act=12;
           this.aux=2;
           if(this.direccionx==0)
                 {
                 Disparo ds=new Disparo(this.getX()+80,this.getY(),this.direccionx,4);
                 getWorld().addObject(ds,this.getX()+50,this.getY());
                 }
                 if(this.direccionx==1)
                 {
                 Disparo ds=new Disparo(this.getX()-80,this.getY(),this.direccionx,4);
                 getWorld().addObject(ds,this.getX()-50,this.getY());
                 }
       }
       else if(aleatorio>4 && aleatorio< 24 && this.aux ==0)//aleatorio de brinco
               { 
                this.aux=1;
                this.dibujo_act=32;
                 
               }
       if (this.aux==2 &&  this.dibujo_act>11 && this.dibujo_act<32)//animacion del disparo
                {
                     this.dibujo_act++;
                }
       
       else if (this.aux==1 &&  this.dibujo_act>31 && this.dibujo_act<=39)//animacion brinco arriba
               {
                   
                   this.setLocation(this.getX(),this.getY()-15);
                   this.dibujo_act++;
                }         
       
      
        if(this.dibujo_act==31 || this.dibujo_act==39 || this.dibujo_act==11)//carga las animaciones al principio
        {
            this.dibujo_act=0;
            this.aux=0;
        }
     
        if(this.getX()>=this.getWorld().getWidth()-10)
        {
          this.dirizq=false;
          this.dirder=true;
        }
        else if(this.getX()==0)//
        {
          this.dirizq=true;
          this.dirder=false;
        }
         
        if(this.dirizq==true && this.aux==0)
        {
          direccionx=0;
          move(8);
          this.dibujo_act++;
        }
        else if(this.dirder==true && this.aux==0)
        {
            direccionx=1;
            move(-8);
            this.dibujo_act++;
        }
        
    }   
    
     public boolean Gravedad()
    {    
         Actor mosaico;
                           
         List piso =  super.getWorld().getObjectsAt(this.getX(),  this.getY()+50, Plataforma.class);
               if(!piso.isEmpty())
        {
           return (true);
        }
          else
          {
        if (this.getY()<550)
            this.setLocation(this.getX(), this.getY()+3);
            return(false);
          }
    }
}

